package com.cctc.rds.scheduler.core.raft;

import com.cctc.rds.scheduler.core.task.TaskLog;

import java.util.List;

/**
 * 任务实例日志 RPC 接口。
 * 主流程：存储（save）-> 取消（cancel）-> 拉取执行（pull）-> 提交执行结果（commit）。
 */
public interface TaskRpc {
    long save(String app, TaskLog taskLog);

    boolean cancel(String app, long taskId);

    List<TaskLog> pull(String app, int maxRecord);

    void commit(String app, long taskId, boolean success);
}
